#!/usr/bin/env python
# -*- coding: latin-1 -*-
# -*- coding: cp1252 -*-

# Skipanirnar sjálfar eru gallaðar, ekki forritið
# Ef loopunum er sleppt þá prentar þetta "hi mom" eins og á að gerast

def naestiStadur(nuverandiStadur, att): # 1 er áfram, -1 afturábak
	if att == 1:
		nuverandiStadur += 1
	elif att == -1:
		nuverandiStadur -= 1
	if nuverandiStadur >= 26:	# 25 er hæsta því það byrjar á 0 og er 26 stafi, stafrófið
		nuverandiStadur -= 26
	elif nuverandiStadur < 0:
		nuverandiStadur += 26
	return nuverandiStadur

def igorTulkur(strengur, utprentun = "", gildi = [], stadsetningKronu = 0):
	stafrof = "abcdefghijklmnopqrstuvxyz"
	if gildi == []:
		for a in range(0, 26):
			gildi.append(0)
	while strengur != "":
		if strengur[0] == ">":
			stadsetningKronu = naestiStadur(stadsetningKronu, 1)
			strengur = strengur[1:]
		elif strengur[0] == "<":
			stadsetningKronu = naestiStadur(stadsetningKronu, -1)
			strengur = strengur[1:]
		elif strengur[0] == "+":
			gildi[stadsetningKronu] += 1
			strengur = strengur[1:]
		elif strengur[0] == "-":
			gildi[stadsetningKronu] -= 1
			strengur = strengur[1:]
		elif strengur[0] == ".":
			utprentun += stafrof[stadsetningKronu]
			strengur = strengur[1:]
		elif strengur[0] == ",":
			utprentun += " "
			strengur = strengur[1:]
		elif strengur[0] == "[":
			x = strengur.index("]")	#Finnum hvar loopan endar
			loopa(strengur[1:x], utprentun, gildi, stadsetningKronu)	# Sendum allt án []
			strengur = strengur[x+1:] # Nýji strengurinn er án [
		else:	# Ætti aldrei að gerast
			print("Hunsa " + strengur[0])
			strengur = strengur[1:]
	return utprentun
	
def loopa(strengur, utprentun, gildi, stadsetningKronu):
	igorTulkur(strengur, utprentun, gildi, stadsetningKronu)
	while(gildi[stadsetningKronu] != 0):
		igorTulkur(strengur, utprentun, gildi, stadsetningKronu)
	
print(igorTulkur(">++++++[<+++>-]>>++>>>++>.+>.[<++>-]>>>>,.[<++>]>>.<<."))
